package com.info33.platform.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.info33.platform.system.dto.SysUserDTO;
import com.info33.platform.system.entity.SysTenantUser;
import com.info33.platform.system.entity.SysUser;
import com.info33.platform.system.vo.SysTenantUserVO;
import com.info33.platform.system.vo.SysUserVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author admin
 */
@Repository
public interface SysTenantUserDao extends BaseMapper<SysTenantUser> {

    /**
     * 该租户下此手机号是否已注册
     *
     * @param dto -
     * @return -
     */
    SysTenantUserVO registered(@Param("dto") SysUserDTO dto);

    /**
     * 添加租户-用户信息
     *
     * @param sysTenantUser
     * @return
     */
    int insertTenantUser(@Param("sysTenantUser") SysTenantUser sysTenantUser);

    /**
     * 根据租户id和用户类型获取用户信息
     *
     * @param tenantId 租户id
     * @param userType 用户类型
     * @return
     */
    List<SysUser> getAdminUserList(@Param("tenantId") Long tenantId, @Param("userType") String userType);

    /**
     * 用户租户注册
     *
     * @param entity 租户 id + 用户 id
     * @return -
     */
    int installOneWithTenantId(@Param("entity") SysTenantUser entity);

    /**
     * 根据部门 id，获取部门下所有人员
     *
     * @param deptId 部门 id
     * @return entity
     */
    List<SysTenantUser> getUserIdsByDeptToLocked(@Param("deptId") Long deptId);

    /**
     * 人员下拉
     *
     * @param currentUser -
     * @param noAdminId   非管理员 id
     * @return -
     */
    List<SysTenantUserVO> pcLi(
            @Param("currentUser") SysUserVO currentUser,
            @Param("noAdminId") Long noAdminId);

}